#pragma once

#include <iostream>

/*
proposition of a base game entity, 
*/
class GamObject
{
public:
	
	GamObject(void);
	virtual ~GamObject(void);

private:
	// a collection of states that any entity has and that can be queried by anyone.
	std::vector<State> states; 
	// same as the states but these components define the gameobject itself, examples could be : a Position component 
	//that indicate that the object has a position, a Renderable Component which handles rendering,
	// or Mobile component, Clickable Component, Destroyable, Dyable.
	std::vector<Component> components; 
};
